home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / C⁄C++ OS8 / Everything / ModalCheckboxes.cp < prev    next >
Encoding:
Text File  |  1998-09-06  |  5.0 KB  |  190 lines  |  [TEXT/CWIE]

  1. // ModalCheckboxes.cp -- Modal dialog
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12.  
  13. #include "ResourceDefs.h"
  14. #include "Miscellany.h"
  15. #include "ControlUtils.h"
  16.  
  17. #include "ModalCheckboxes.h"
  18.  
  19. #define kOKButton        1
  20. #define kStandardCheck        2
  21. #define kXxCheck        3
  22. #define kCapTriangleLabel        4
  23. #define kGraphicBox        5
  24. #define kCapcicnLabel        6
  25. #define kLRCheck        7
  26. #define kCapicl8Label        8
  27. #define kLR2Check        9
  28. #define kCapICNLabel        10
  29. #define kLR3Check        11
  30. #define kCapPICTLabel        12
  31. #define kLR4Check        13
  32. #define kCapicl9Label        14
  33. #define kCheckboxCheck        15
  34. #define kBevelBox        16
  35. #define kCheckbox2Check        17
  36. #define kNextCheck        18
  37. #define kNext2Check        19
  38.  
  39.  
  40. //----------
  41. // static
  42. Boolean        CModalCheckboxes::GetModalCheckboxes (
  43.     DModalCheckboxesData*        ioData)
  44. {
  45.     Boolean            result = false;
  46.     CModalCheckboxes*        dialog = new CModalCheckboxes;
  47.  
  48.     result = dialog->RunModal (DLOG_ModalCheckboxes, ioData);
  49.  
  50.     delete dialog;
  51.  
  52.     return result;
  53. }
  54.  
  55. //----------
  56. CModalCheckboxes::CModalCheckboxes ()
  57. {
  58.     mData = nil;
  59. }
  60.  
  61. //----------
  62. CModalCheckboxes::~CModalCheckboxes ()
  63. {
  64. }
  65.  
  66. //----------
  67. void    CModalCheckboxes::FinishMake ()
  68. {
  69.     mOKHandle = GetControlItem (kOKButton);
  70.     SetDefaultState (mOKHandle, true);
  71.     ::SetDialogDefaultItem (mDialog, kOKButton);
  72.     mStandardHandle = GetControlItem (kStandardCheck);
  73.     mXxHandle = GetControlItem (kXxCheck);
  74.     mGraphicHandle = GetControlItem (kGraphicBox);
  75.     mLRHandle = GetControlItem (kLRCheck);
  76.     mLR2Handle = GetControlItem (kLR2Check);
  77.     mLR3Handle = GetControlItem (kLR3Check);
  78.     mLR4Handle = GetControlItem (kLR4Check);
  79.     mCheckboxHandle = GetControlItem (kCheckboxCheck);
  80.     mBevelHandle = GetControlItem (kBevelBox);
  81.     mCheckbox2Handle = GetControlItem (kCheckbox2Check);
  82.     SetBevelButtonGraphicAlignment (mCheckbox2Handle, kControlBevelButtonAlignCenter, 0, 0);
  83.     mNextHandle = GetControlItem (kNextCheck);
  84.     SetBevelButtonTextPlacement (mNextHandle, kControlBevelButtonPlaceToRightOfGraphic);
  85.     SetBevelButtonTextAlignment (mNextHandle, kControlBevelButtonAlignTextFlushLeft, 0);
  86.     SetBevelButtonGraphicAlignment (mNextHandle, kControlBevelButtonAlignLeft, 0, 0);
  87.     mNext2Handle = GetControlItem (kNext2Check);
  88.     SetBevelButtonTextPlacement (mNext2Handle, kControlBevelButtonPlaceBelowGraphic);
  89.     SetBevelButtonTextAlignment (mNext2Handle, kControlBevelButtonAlignTextCenter, 0);
  90.     SetBevelButtonGraphicAlignment (mNext2Handle, kControlBevelButtonAlignTop, 0, 0);
  91. }
  92.  
  93. //----------
  94. void    CModalCheckboxes::ConnectToData (
  95.     AMSignaler*        inData)
  96. {
  97.     AMDialog::ConnectToData (inData);
  98.     mData = (DModalCheckboxesData*) inData;
  99.  
  100.     SetControlValue (mStandardHandle, mData->GetStandard4 ());
  101.     SetControlValue (mXxHandle, mData->GetXx2 ());
  102.     SetControlValue (mLRHandle, mData->GetLR5 ());
  103.     SetControlValue (mLR2Handle, mData->GetLR6 ());
  104.     SetControlValue (mLR3Handle, mData->GetLR7 ());
  105.     SetControlValue (mLR4Handle, mData->GetLR8 ());
  106.     SetControlValue (mCheckboxHandle, mData->GetCheckbox3 ());
  107.     SetControlValue (mCheckbox2Handle, mData->GetCheckbox4 ());
  108.     SetControlValue (mNextHandle, mData->GetNext3 ());
  109.     SetControlValue (mNext2Handle, mData->GetNext4 ());
  110. }
  111.  
  112. //----------
  113. void    CModalCheckboxes::DataChanged (
  114.     long        inDataID)
  115. {
  116.     if (inDataID == idStandard4) {
  117.         SetControlValue (mStandardHandle, mData->GetStandard4 ());
  118.     }
  119.     if (inDataID == idXx2) {
  120.         SetControlValue (mXxHandle, mData->GetXx2 ());
  121.     }
  122.     if (inDataID == idLR5) {
  123.         SetControlValue (mLRHandle, mData->GetLR5 ());
  124.     }
  125.     if (inDataID == idLR6) {
  126.         SetControlValue (mLR2Handle, mData->GetLR6 ());
  127.     }
  128.     if (inDataID == idLR7) {
  129.         SetControlValue (mLR3Handle, mData->GetLR7 ());
  130.     }
  131.     if (inDataID == idLR8) {
  132.         SetControlValue (mLR4Handle, mData->GetLR8 ());
  133.     }
  134.     if (inDataID == idCheckbox3) {
  135.         SetControlValue (mCheckboxHandle, mData->GetCheckbox3 ());
  136.     }
  137.     if (inDataID == idCheckbox4) {
  138.         SetControlValue (mCheckbox2Handle, mData->GetCheckbox4 ());
  139.     }
  140.     if (inDataID == idNext3) {
  141.         SetControlValue (mNextHandle, mData->GetNext3 ());
  142.     }
  143.     if (inDataID == idNext4) {
  144.         SetControlValue (mNext2Handle, mData->GetNext4 ());
  145.     }
  146. }
  147.  
  148.  
  149. //----------
  150. void    CModalCheckboxes::DoItem (
  151.     SInt16        inItemHit)
  152. {
  153.     switch (inItemHit) {
  154.     case kOKButton:
  155.             SetResult (true);
  156.         break;
  157.     case kStandardCheck:
  158.             mData->SetStandard4 (ToggleCheckbox (mStandardHandle));
  159.         break;
  160.     case kXxCheck:
  161.             mData->SetXx2 (ToggleCheckbox (mXxHandle));
  162.         break;
  163.     case kLRCheck:
  164.             mData->SetLR5 (ToggleCheckbox (mLRHandle));
  165.         break;
  166.     case kLR2Check:
  167.             mData->SetLR6 (ToggleCheckbox (mLR2Handle));
  168.         break;
  169.     case kLR3Check:
  170.             mData->SetLR7 (ToggleCheckbox (mLR3Handle));
  171.         break;
  172.     case kLR4Check:
  173.             mData->SetLR8 (ToggleCheckbox (mLR4Handle));
  174.         break;
  175.     case kCheckboxCheck:
  176.             mData->SetCheckbox3 (ToggleCheckbox (mCheckboxHandle));
  177.         break;
  178.     case kCheckbox2Check:
  179.             mData->SetCheckbox4 (GetControlValue (mCheckbox2Handle));
  180.         break;
  181.     case kNextCheck:
  182.             mData->SetNext3 (GetControlValue (mNextHandle));
  183.         break;
  184.     case kNext2Check:
  185.             mData->SetNext4 (GetControlValue (mNext2Handle));
  186.         break;
  187.  
  188.     } // switch
  189. }
  190.